package com.openstack4j.qx;

import com.openstack4j.qx.pojo.BaseResp;
import com.openstack4j.qx.pojo.VMResourceInfo;
import com.openstack4j.qx.pojo.VMResp;
import com.openstack4j.qx.pojo.VMStatusResp;

public interface VMController {

	/**
	 * 创建虚拟机
	 * 该接口用于创建虚拟机。
	 * @param ParamFlag
	 * @param ResourceTemplateID
	 * @param vMResourceInfo
	 * @param AppID
	 * @param AppName
	 * @param Count
	 * @param Security
	 * @return
	 * @baater
	 */
	public BaseResp CreateVM(String ParamFlag,String ResourceTemplateID,VMResourceInfo vMResourceInfo,String AppID,String AppName,int Count,String Security);
	
	
	/**
	 * 
	 * @param VMID
	 * @param ActType
	 * @return
	 * 操作类型
		1：启动 start server
		2：暂停 
		3：恢复
		4：停止
		5：重启
	 */
	public BaseResp ActVM(String VMID, int ActType);
	
	
	/**
	 * 删除虚拟机
	 * 该接口用于删除虚拟机。
	 * @baater
	 * @param VMID
	 * @return
	 */
	public BaseResp DeleteVM(String VMID);
	
	
	
	/**
	 * 更改虚拟机配置
	 * 该接口用于更改虚拟机配置。
	 * @baater
	 * @param VMID
	 * @param vMResourceInf
	 * @return
	 */
	public BaseResp ModifyVM(String VMID, VMResourceInfo vMResourceInf);
	
	
	/**
	 * 查询虚拟机状态 
	 * 该接口用于查询虚拟机状态
	 * @baater
	 * @param VMID
	 * @return
	 */
	
	public BaseResp QueryVMStatus(String VMID);
	
	
	
	/**
	 * 备份虚拟机
	 * 该接口用于备份虚拟机
	 * @baater
	 * @param VMID
	 * @return
	 */
	
	
	public BaseResp BackupVM(String VMID);
	
}
